package hotel.userCtl;

import hotel.util.HibernateUtil;

import java.util.LinkedList;
import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;

public class UsuarioDao {
	public static int create(Usuario in){
		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
				
				session.beginTransaction();

		        Integer id = (Integer) session.save(in);
		        
		        session.getTransaction().commit();
		        
		        return id.intValue();
			}
			
			@SuppressWarnings("unchecked")
			public static LinkedList<Usuario> listarEntradas() {
				// Cria uma sessão
				Session session = HibernateUtil.getSessionFactory().getCurrentSession();
				// inicia a transação
				session.beginTransaction();
				// Cria uma lista para retornar
				LinkedList<Usuario> usuarios = null;
				
				try{
					usuarios = new LinkedList<Usuario>(session.createQuery("from Usuarios").list());
				} catch (Exception e) {
					e.printStackTrace();
				}
				
				return usuarios;
			}
			
			@SuppressWarnings("unchecked")
			public static Boolean checkPassword(Usuario user){
				// Cria uma sessão
				Session session = HibernateUtil.getSessionFactory().getCurrentSession();
				// inicia a transação
				session.beginTransaction();

				String query = new String("select u from Usuario u where u.userName = :user and u.password = :pass");
				Query q = session.createQuery(query);
				
				q.setString("user",user.getUserName().trim());
				q.setString("pass",user.getPassword().trim());
				
				List queryUser = q.list();
				
				if(queryUser.size() == 0)
					return false;
				else return true;
			}
}
